﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ListIt.DAL
{
    public interface IListItDAL : IDisposable
    {
        JobBackLog AddJobToBackLog(
            string deviceID,
            string customerName, 
            string pickupAddress, 
            string specialInstructionstring,
            string destinationAddress, 
            DateTime travelDate, 
            string mobileNo, 
            string telNo, 
            short vehicleType,
            int taxiCoy,
            double pickupLong, 
            double pickupLat);

        ActiveJob AddJobToActive(JobBackLog jobBacklog, string taxiLicenseNo);

        JobHistory AddJobToHistory(ActiveJob activeJob);

        string GetSerializedJob(ActiveJob job);

        void ClearJobBackLog();

        ListItEntities ListItEntities { get; }

        /**************************************************************************************************************
        *                               Interfaces for the List-It website                                            *
        * *************************************************************************************************************/
        bool Authenticate(string username, string password);

        int AuthenticateTaxi(string deviceID, string username, string password, out string message);

        string AddUser(string username, string password, string email, string passPhrase, string answer);

        void RegisterCustomerDevice(string deviceID, string customerName, string mobileNo);
    }
}
